// pages/applyForInvoice/applyForInvoice.js test
import { getOrderInfoApi, updateOrderApi } from '../../api/order'

Page({
  /**
   * 页面的初始数据
   */
  data: {
    radio: '1',
    type: 1,
    checked: false,
    orderId: '',
    orderInfo: {},
    invoiceInfo: {
      accountBank: '', // 开户银行
      bankNum: '', // 银行账户
      createTime: '', // 创建时间
      id: 0,
      invoiceType: 1, // 发票类型：1-普通；2-增值税专用
      orderId: 0, // 订单id
      registerAddress: '', // 注册地址
      registerPhone: '', // 注册电话
      state: 0, // 状态：0-待审核；1-审核通过；2-审核失败
      title: '', // 发票抬头
      titleType: 1, // 抬头类型：1-个人；2-企业
      unitTaxNum: '' // 单位税号
    }
  },

  onChange(e) {
    this.setData({
      'invoiceInfo.titleType': e.detail
    })
  },

  changeInvoiceType(e) {
    this.setData({
      'invoiceInfo.invoiceType': e.currentTarget.dataset.value
    })
  },

  onCheck(e) {
    console.log(e, '===')
    this.setData({
      checked: e.detail
    })
  },

  /**
   * 获取订单详情
   */
  async getOrderInfo() {
    const [err, info] = await getOrderInfoApi({
      orderId: this.data.orderId
    })
    if (err) return
    this.setData({
      orderInfo: info
    })
  },

  /**
   * 修改订单
   */
  async updateOrder(info) {
    const {
      address,
      billStatus,
      orderListVO,
      isLogistics,
      noLogisticsNote,
      remark,
      reportStatus,
      specimenBackTime,
      specimenGoTime
    } = this.data.orderInfo
    const {
      buyerId,
      customerName,
      customerPhone,
      detectCompleteTime,
      id,
      orderNum,
      orderState,
      paymentTime,
      productId
    } = orderListVO
    const [err] = await updateOrderApi({
      address, // 详细地址
      billStatus, // 发票状态 发票状态：1-未申请；2-已申请；3-已开
      buyerId, // 客户id
      customerName, // 下单人姓名
      customerPhone, // 下单人手机号
      detectCompleteTime, // 检测完成时间
      id, // 订单id
      isLogistics, // 是否需要物流：0-否；1-是
      noLogisticsNote, // 无需物流原因
      orderNum, // 订单编号
      orderState, // 订单状态
      paymentTime, // 支付时间
      productId, // 产品id
      receiveAdress: '', // 收货地址
      receiveName: '', // 收货人姓名
      receivePhone: '', // 收货人手机号
      remark, // 订单备注
      reportStatus, // 检测报告状态
      specimenBackTime, // 收样时间
      specimenGoTime, // 发样时间
      updateBy: '', // 更新者
      updateTime: '', // 更新时间
      ...info
    })
    if (err) return [err, null]
    this.getOrderInfo()
    return [undefined, 'success']
  },

  async submitInvoice() {
    let instance
    const { invoiceType, titleType } = this.data.invoiceInfo
    if (Number(invoiceType) == 1) {
      if (Number(titleType) == 1) {
        instance = this.selectComponent('#personal')
      } else {
        instance = this.selectComponent('#enterprise')
      }
    } else {
      instance = this.selectComponent('#added-value')
    }

    // 提交发票信息
    const [err] = await instance.subimit()
    if (err) return

    wx.redirectTo({
      url: `/pages/addressList/addressList?type=3&orderId=${this.data.orderId}`
    })

    // // 修改订单信息
    // const [updateErr] = await this.updateOrder({
    //   billStatus: 2
    // })
    // if (updateErr) return
    // wx.navigateBack({
    //   delta: 0
    // })
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.setData(
      {
        orderId: options.orderId,
        'invoiceInfo.orderId': options.orderId
      },
      () => {
        // this.getOrderInfo()
      }
    )
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {},

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {},

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {},

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {},

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {},

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {},

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {}
})
